qx.Class.define("viaticos.viaticos.pagePrincipal",
{
	extend : qx.ui.tabview.Page,
	construct : function (application)
	{
		this.base(arguments);
		
		this._application = application;
		
/*
		var rpc = this._rpc = new qx.io.remote.Rpc("services/")
		rpc.setTimeout(10000);
		rpc.setServiceName("pediatras.Principal");
		try {
			var resultado = rpc.callSync("leer_principal");
		} catch (ex) {
			alert("Sync exception: " + ex);
		}
*/
		
		this.setLabel('Principal');
		this.setLayout(new qx.ui.layout.Canvas());
		
	this.addListenerOnce("appear", function(e){
		tblPaciente.focus();
	});
		
		
	var rowDataActual;
	var boolImprimirViatico = false;
	var boolImprimirRendicion = false;
	var contexto = this;
		
		
		var actualizarViaticos = function(id_viatico) {
			var p = {};
			var rpc = new qx.io.remote.Rpc("services/", "viaticos.Viaticos");
			try {
				var resultado = rpc.callSync("leer_viaticos", p);
			} catch (ex) {
				alert("Sync exception: " + ex);
			}
			
			tableModel.setDataAsMapArray(resultado, true);
			if (id_viatico!=null) {
				tblPaciente.buscar("id_viatico", id_viatico);
				tblPaciente.focus();
			} else {
				
			}
		}
		
		
		//Menu de contexto
		
		var menutblPaciente = new controles.menu.Menu();
		var btn1 = new qx.ui.menu.Button("Anticipo");
		btn1.addListener("execute", function(e) {
			var win = new viaticos.viaticos.windowViatico(application, "0", "A", "E");
			win.addListener("aceptado", function(e){
				boolImprimirViatico = true;
				actualizarViaticos(e.getData());
			});
			win.setModal(true);
			application.getRoot().add(win);
			win.open();
			win.center();
		});
		var btn2 = new qx.ui.menu.Button("Reintegro");
		btn2.addListener("execute", function(e) {
			var window = new viaticos.viaticos.windowViatico(application, "0", "R", "E");
			window.addListener("aceptado", function(e){
				boolImprimirViatico = true;
				actualizarViaticos(e.getData());
			});
			window.setModal(true);
			application.getRoot().add(window);
			window.open();
			window.center();
		});
		var btn3 = new qx.ui.menu.Button("Reintegro mensual");
		menutblPaciente.add(btn1);
		menutblPaciente.add(btn2);
		menutblPaciente.add(btn3);

		var mnubtnNuevo = new qx.ui.form.MenuButton("Nuevo viatico", null, menutblPaciente);
		this.add(mnubtnNuevo, {left: 0, bottom: 0});
		
		var btnModificar = new qx.ui.form.Button("Modificar");
		btnModificar.setEnabled(false);
		btnModificar.addListener("execute", function(e){
			var win = new viaticos.viaticos.windowViatico(application, rowDataActual.id_viatico, rowDataActual.tipo_viatico, rowDataActual.estado);
			win.addListener("aceptado", function(e){
				boolImprimirViatico = true;
				actualizarViaticos(e.getData());
			});
			win.setModal(true);
			application.getRoot().add(win);
			win.open();
			win.center();
		});
		this.add(btnModificar, {left: 150, bottom: 0});
		
		var btnLiquidar = new qx.ui.form.Button("Liquidar");
		btnLiquidar.setEnabled(false);
		btnLiquidar.addListener("execute", function(e){
			var window = new viaticos.viaticos.windowViatico(application, rowDataActual.id_viatico, rowDataActual.tipo_viatico, "L");
			window.addListener("aceptado", function(e){
				actualizarViaticos(e.getData());
			});
			window.setModal(true);
			application.getRoot().add(window);
			window.open();
			window.center();
		});
		this.add(btnLiquidar, {left: 300, bottom: 0});
		
		var btnRendir = new qx.ui.form.Button("Rendir");
		btnRendir.setEnabled(false);
		btnRendir.addListener("execute", function(e){
			var window = new viaticos.viaticos.windowRendicion(application, rowDataActual.id_viatico);
			window.addListener("aceptado", function(e){
				boolImprimirRendicion = true;
				actualizarViaticos(e.getData());
			});
			window.setModal(true);
			application.getRoot().add(window);
			window.open();
			window.center();
		});
		this.add(btnRendir, {left: 400, bottom: 0});
		
		var btnCerrar = new qx.ui.form.Button("Cerrar");
		btnCerrar.setEnabled(false);
		btnCerrar.addListener("execute", function(e){
			dialog.Dialog.confirm("Desea cerrar el viático seleccionado?", function(e){
				if (e) {
					var p = {};
					p.id_viatico = rowDataActual.id_viatico;
					p.estado = "C";
					var rpc = new qx.io.remote.Rpc("services/", "viaticos.Viaticos");
					try {
						var resultado = rpc.callSync("estado_viatico", p);
					} catch (ex) {
						alert("Sync exception: " + ex);
					}
					actualizarViaticos(rowDataActual.id_viatico);
				}
			});
		});
		this.add(btnCerrar, {left: 500, bottom: 0});
		
		var btnAnular = new qx.ui.form.Button("Anular");
		btnAnular.setEnabled(false);
		btnAnular.addListener("execute", function(e){
			dialog.Dialog.confirm("ATENCIÓN: Desea anular el viático seleccionado?", function(e){
				if (e) {
					var p = {};
					p.id_viatico = rowDataActual.id_viatico;
					p.estado = "A";
					var rpc = new qx.io.remote.Rpc("services/", "viaticos.Viaticos");
					try {
						var resultado = rpc.callSync("estado_viatico", p);
					} catch (ex) {
						alert("Sync exception: " + ex);
					}
					actualizarViaticos(rowDataActual.id_viatico);
				}
			});
		});
		this.add(btnAnular, {left: 600, bottom: 0});
	
		
		//Tabla

		
		var tableModel = new qx.ui.table.model.Simple();
		tableModel.setColumns(["Asunto", "Org/Area", "Apellido nombre", "Tipo", "Estado"], ["documentacion_id", "organismo_area", "apenom", "tipo_descrip", "estado_descrip"]);
		//tableModel.setDataAsMapArray(resultado.contacto, true);

		var custom = {tableColumnModel : function(obj) {
			return new qx.ui.table.columnmodel.Resize(obj);
		}};
		
		var tblPaciente = this._tblPaciente = new controles.table.Table(tableModel, custom);
		//var tblPaciente = this._tblPaciente = new pediatras.controles.table.Table(tableModel, custom);
		tblPaciente.getSelectionModel().setSelectionMode(qx.ui.table.selection.Model.SINGLE_SELECTION);
		tblPaciente.toggleColumnVisibilityButtonVisible();
		tblPaciente.toggleShowCellFocusIndicator();
		tblPaciente.toggleStatusBarVisible();

		tblPaciente.addListener("cellDblclick", function(e){

		});
		
		
		var tableColumnModel = tblPaciente.getTableColumnModel();
		//tableColumnModel.setColumnVisible(0, false);
      // Obtain the behavior object to manipulate
		var resizeBehavior = tableColumnModel.getBehavior();
		//resizeBehavior.set(0, {width:"40%", minWidth:100});
		//resizeBehavior.set(1, {width:"20%", minWidth:100});
		//resizeBehavior.set(2, {width:"40%", minWidth:100});
		
		var selectionModel = tblPaciente.getSelectionModel();
		selectionModel.addListener("changeSelection", function(){
			var bool = (! selectionModel.isSelectionEmpty());
			if (bool) {
				rowDataActual = tableModel.getRowData(tblPaciente.getFocusedRow());
				if (boolImprimirViatico) {
					boolImprimirViatico = false;
					window.open("services/class/viaticos/Impresion.php?rutina=imprimir_viatico&id_viatico=" + rowDataActual.id_viatico);
				}
				if (boolImprimirRendicion) {
					boolImprimirRendicion = false;
					window.open("services/class/viaticos/Impresion.php?rutina=imprimir_rendicion&id_viatico=" + rowDataActual.id_viatico);
				}
				if (rowDataActual.tipo_viatico == "A") {
					if (rowDataActual.estado == "E") {
						btnModificar.setEnabled(true);
						btnLiquidar.setEnabled(true);
						btnRendir.setEnabled(false);
						btnCerrar.setEnabled(false);
						btnAnular.setEnabled(true);
					} else if (rowDataActual.estado == "L") {
						btnModificar.setEnabled(false);
						btnLiquidar.setEnabled(false);
						btnRendir.setEnabled(true);
						btnCerrar.setEnabled(false);
						btnAnular.setEnabled(true);
					} else if (rowDataActual.estado == "R") {
						btnModificar.setEnabled(false);
						btnLiquidar.setEnabled(false);
						btnRendir.setEnabled(false);
						btnCerrar.setEnabled(true);
						btnAnular.setEnabled(true);
					} else {
						btnModificar.setEnabled(false);
						btnLiquidar.setEnabled(false);
						btnRendir.setEnabled(false);
						btnCerrar.setEnabled(false);
						btnAnular.setEnabled(false);
					}
				} else if (rowDataActual.tipo_viatico == "R") {
					if (rowDataActual.estado == "E") {
						btnModificar.setEnabled(true);
						btnLiquidar.setEnabled(false);
						btnRendir.setEnabled(false);
						btnCerrar.setEnabled(true);
						btnAnular.setEnabled(true);
					} else {
						btnModificar.setEnabled(false);
						btnLiquidar.setEnabled(false);
						btnRendir.setEnabled(false);
						btnCerrar.setEnabled(false);
						btnAnular.setEnabled(false);
					}
				}
			}
			//commandAbrirHC.setEnabled(bool);
			//menutblPaciente.memorizar([commandAbrirHC]);
		});
		
		
		
		this.add(tblPaciente, {left: 0, top: 0, right: 0, bottom: 30});
		
		actualizarViaticos();
		
		if (tableModel.getRowCount()>0) tblPaciente.setFocusedCell(0, 0, true);
		
		//tblPaciente.setContextMenu(menutblPaciente);
		//tblPaciente.focus();
		
	},
	members : 
	{
		_application: null,
		_rpc: null,
		_tblPaciente: null
		
		
	}
});